#ifndef PLOG_APPENDER_H
#define PLOG_APPENDER_H

#include "log_level.h"

namespace plog
{

//////////////////////////////////////////////////////////////////////////

class appender
{
public:
    appender(log_level min_severity = none);

    virtual ~appender();

    virtual void write(const void* buffer, size_t length);
    virtual bool newly_created();

    void set_level(log_level min_severity);
    log_level get_level() const;

private:
    log_level min_severity_;
};

inline bool operator<(const appender& Left, const appender& Right)
{
    return Left.get_level() < Right.get_level();
}

} //namespace

#endif